/*
 * Edge.h
 *
 *  Created on: 18/11/2011
 *      Author: godinho
 */

#ifndef EDGE_H_
#define EDGE_H_

#include <string>

namespace localview {

class Node;

class Edge {
public:
	Edge(Node* s, Node* t, std::string id);
	virtual ~Edge();
    std::string getId() const;
    Node *getSource() const;
    Node *getTarget() const;

    void setFlush(int flush);
    void setQueue(int queue);
    void setMeanSpeed(float speed);
    void setNumLanes(int lanes);

    int getFlush();
    int getQueue();
    float getMeanSpeed();
    int getNumLanes();

private:
	std::string mId;
	Node* mSource;
	Node* mTarget;
	int mNumLanes;
	int mFlush;
	int mQueue;
	float mMeanSpeed;
};

}

#endif /* EDGE_H_ */
